<!DOCTYPE HTML PUBLIC>
<html>
  <head>
    <title>Graph 3D demo</title>

    <style>
      body {font: 10pt arial;}
    </style>

    <!-- For running IE9 mode, define the meta X-UA-Compatible, and specify DOCTYPE -->                                 
    <meta http-equiv="X-UA-Compatible" content="IE=9" />
                                                                        
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript" src="graph3d.js"></script>
    <script type="text/javascript" src="timeline.js"></script>
    <link rel="stylesheet" type="text/css" href="graph3d.css">
    <link rel="stylesheet" type="text/css" href="timeline.css">
    
    <script type="text/javascript">
      var data = null;
      var graph = null;
    
      google.load("visualization", "1");
      
      // Set callback to run when API is loaded
      google.setOnLoadCallback(drawVisualization); 

      function custom(x, y) {
        return (Math.sin(x/50) * Math.cos(y/50) * 50 + 50);
      }

      // Called when the Visualization API is loaded.
      function drawVisualization() {
        // Create and populate a data table.
        data = new google.visualization.DataTable();
        data.addColumn('number', 'x');
        data.addColumn('number', 'y');
        data.addColumn('number', 'value');

        // create some nice looking data with sin/cos
        var steps = 50;  // number of datapoints will be steps*steps
        var axisMax = 314;
        axisStep = axisMax / steps;
        for (var x = 0; x < axisMax; x+=axisStep) {
          for (var y = 0; y < axisMax; y+=axisStep) {
            var value = custom(x,y);
            data.addRow([x, y, value]);
          }
        }

        // specify options
        options = {width:  "600px", 
                   height: "600px",
                   style: "surface",
                   showPerspective: true,
                   showGrid: true,
                   showShadow: false,
                   keepAspectRatio: true,
                   verticalRatio: 0.5
                   };

        // Instantiate our graph object.
        graph = new links.Graph3d(document.getElementById('graph'));

        // Draw our graph with the created data and options 
        graph.draw(data, options);
        
        
        // Create and populate a data table.
        var data = new google.visualization.DataTable();
        data.addColumn('datetime', 'start');
        data.addColumn('datetime', 'end');
        data.addColumn('string', 'content');
	
        data.addRows([
          [new Date(2010,7,23), , 'Conversation<br>' + 
            '<img src="img/comments-icon.png" style="width:32px; height:32px;">'],
          [new Date(2010,7,23,23,0,0), , 'Mail from boss<br>' + 
            '<img src="img/mail-icon.png" style="width:32px; height:32px;">'],
          [new Date(2010,7,24,16,0,0), , 'Report'],
          [new Date(2010,7,26), new Date(2010,8,2), 'Traject A'],     
          [new Date(2010,7,28), , 'Memo<br>' + 
            '<img src="img/notes-edit-icon.png" style="width:48px; height:48px;">'],
          [new Date(2010,7,29), , 'Phone call<br>' + 
            '<img src="img/Hardware-Mobile-Phone-icon.png" style="width:32px; height:32px;">'],
          [new Date(2010,7,31), new Date(2010,8,3), 'Traject B'],     
          [new Date(2010,8,4,12,0,0), , 'Report<br>' +
            '<img src="img/attachment-icon.png" style="width:32px; height:32px;">']
        ]);

        // specify options
        options = {width:  "100%", 
                   height: "300px", 
                   layout: "box"
                   };

        // Instantiate our timeline object.
        var timeline = new links.Timeline(document.getElementById('timeline'));
        
        // Draw our timeline with the created data and options 
        timeline.draw(data, options);        
        
      }
   </script>
  </head>

  <body>
    <div id="graph"></div>

    <div id="timeline"></div>

    <div id="info"></div>
  </body>
</html>
